package com.atguigu.gmall.cart.service;

import com.atguigu.gmall.model.cart.CartInfo;

import java.util.List;
import java.util.Map;

/**
 * projectName: gmall
 *
 * @author: 陈鹏
 * time: 2022/10/7 15:43 星期五
 * description: 购物车的接口类
 */

public interface CartInfoService {

    /**
     * 购物车新增操作
     * @param skuId
     * @param num
     */
    public void addCart(Long skuId,Integer num);

    /**
     * 查询用户的购物车数据
     * @return
     */
    public List<CartInfo> getCartInfo();

    /**
     * 删除用户的购物车数据
     * @param id
     */
    public void removeCart(Long id);

    /**
     * 用户选中或取消选中单个或全部商品
     * @param status
     * @param id
     */
    public void checkOrUncheck(Short status, Long id);

    /**
     * 合并用户购物车数据(用户登录前与用户登录后)
     * @param cartInfoList
     */
    public void mergeCart(List<CartInfo> cartInfoList);

    /**
     * 查询订单页面用户选中的购物车数据
     * @return
     */
    public Map<String,Object> getCheckCart();

    /**
     * 清除用户选中的购物车数据
     */
    public void removeCheckCart();
}
